home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 10
/
The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso
/
PC_SIGCD
/
10
/
9
/
DISK1095.ZIP
/
ORDERS.PRG
< prev
next >
Wrap
Text File
|
1980-01-01
|
11KB
|
345 lines
* ORDERS.PRG
* ORDER ENTRY PROGRAM
SET HEADING OFF
SET SAFETY OFF
SET STATUS OFF
CLEAR
CLEAR ALL
SET TALK OFF
SET BELL OFF
@ 1,22 SAY "SMITH'S BIKEWORKS INFORMATION SYSTEM"
@ 2,28 SAY ">> Order Entry System <<"
@ 3,29 SAY "Today's Date: "
?? DATE()
STORE SPACE(80) TO BLANK
STORE " " TO OPINPUT
STORE 100 TO INV_NUM
@ 10,0 SAY "Beginning Invoice Number " GET INV_NUM PICTURE "9999"
STORE .045 TO TAX_RATE_D
@ 12,0 SAY "Sales Tax Rate " GET TAX_RATE_D PICTURE "9.999"
STORE 102.0 TO ACCOUNT_D
@ 14,0 SAY "Default Account Number " GET ACCOUNT_D PICTURE "999.99"
@ 19,0 SAY ;
"REPLACE VALUES AT CURSOR, OR JUST PRESS ENTER IF CURRENT VALUES ARE"
@ 20,0 SAY ;
"O.K. 'M' HERE RETURNS TO MENU, ANY OTHER KEY STARTS ORDER PROCESSING => ";
GET OPINPUT
READ
STORE UPPER(OPINPUT) TO OPINPUT
IF OPINPUT="M"
RETURN
ENDIF
* CLEAR SCREEN
STORE 4 TO COUNT
DO WHILE COUNT<23
@ COUNT,0 SAY BLANK
STORE COUNT+1 TO COUNT
ENDDO
* OPEN MFG INVENTORY AND RECEIVABLES. CASH PURCHASES USE SEPARATE ENTRY TO
* ACCOUNTING SYSTEM TO PROCESS RECEIPTS
SELECT A
USE MFGINV INDEX MSTOCKNO
SELECT B
USE RECFILE INDEX RFINVID,RFCUSTDT
* FORCE SCREEN TO INITIALIZE
STORE "C" TO OPINPUT
DO WHILE OPINPUT<>"M"
* CLEAR DISPLAY IF CANCEL OR ORDER ENTRY REQUESTS HAVE BEEN ENTERED
IF OPINPUT="C".OR.OPINPUT="E"
* ENTRIES CURRENTLY ON ORDER FORM
STORE 0 TO ENTRY_CT
STORE TAX_RATE_D TO TAX_RATE
STORE ACCOUNT_D TO ACCOUNT
STORE " " TO SALE_BASIS
STORE " " TO NUMBER
STORE " " TO SOLD_NAME1
STORE " " TO SOLD_NAME2
STORE " " TO SOLD_ADRS
STORE " " TO SOLD_CITY
STORE " " TO SOLD_ST
STORE " " TO SOLD_ZIP
STORE " " TO SHIP_NAME1
STORE " " TO SHIP_NAME2
STORE " " TO SHIP_ADRS
STORE " " TO SHIP_CITY
STORE " " TO SHIP_ST
STORE " " TO SHIP_ZIP
* CLEAR ALL 6 ORDER LINE ENTRIES. USE MACROS TO IDENTIFY VARIABLES
STORE 1 TO COUNT
DO WHILE COUNT<=6
STORE STR(COUNT,1,0) TO IX
STORE "STKNUM"+IX TO STK
STORE " " TO &STK
STORE "DESCR"+IX TO DES
STORE " " TO &DES
STORE "PRCE"+IX TO PRC
STORE 0.00 TO &PRC
STORE "QUANT"+IX TO QUAN
STORE 0 TO &QUAN
STORE COUNT+1 TO COUNT
ENDDO
ENDIF
* REDISPLAY BUYER, SHIP TO IF NEW RECORD OR CHANGED
IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="B"
@ 4,16 SAY "Buyer"
@ 4,56 SAY "Ship To"
@ 5,0 SAY "Name " GET SOLD_NAME1
@ 6,0 SAY " " GET SOLD_NAME2
@ 7,0 SAY "Address" GET SOLD_ADRS
@ 8,0 SAY "City" GET SOLD_CITY
@ 8,22 SAY "St" GET SOLD_ST
@ 8,29 SAY "Zip" GET SOLD_ZIP
IF OPINPUT<>"B"
CLEAR GETS
ELSE
READ
ENDIF
ENDIF
IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="S"
@ 5,40 SAY "Name " GET SHIP_NAME1
@ 6,40 SAY " " GET SHIP_NAME2
@ 7,40 SAY "Address" GET SHIP_ADRS
@ 8,40 SAY "City" GET SHIP_CITY
@ 8,62 SAY "St" GET SHIP_ST
@ 8,69 SAY "Zip" GET SHIP_ZIP
IF OPINPUT<>"S"
CLEAR GETS
ELSE
READ
ENDIF
ENDIF
IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="P"
@ 10,10 SAY "Tax Rate For This Sale " GET TAX_RATE PICTURE "9.999"
@ 10,50 SAY "Invoice Number " GET INV_NUM PICTURE "9999"
@ 11,0 SAY "<C>ash/<M>Chg/<V>isa/<B>ill " GET SALE_BASIS
@ 11,34 SAY "Card, Check Num " GET NUMBER
@ 11,65 SAY "Account " GET ACCOUNT PICTURE "999.9"
IF OPINPUT<>"P"
CLEAR GETS
ELSE
READ
ENDIF
ENDIF
IF OPINPUT="C".OR.OPINPUT="E".OR.OPINPUT="A".OR.OPINPUT="D"
@ 13,5 SAY "STOCK NUMBER"
@ 13,20 SAY "DESCRIPTION"
@ 13,52 SAY " PRICE"
@ 13,63 SAY " QTY"
@ 13,70 SAY "SUBTOTAL"
STORE 1 TO COUNT
STORE 0.00 TO TOTAL
STORE 0.00 TO TAX
DO WHILE COUNT<=6
@ 13+COUNT,0 SAY BLANK
STORE COUNT+1 TO COUNT
ENDDO
STORE 1 TO COUNT
DO WHILE COUNT<=ENTRY_CT
STORE STR(COUNT,1,0) TO IX
STORE "STKNUM"+IX TO STK
STORE "DESCR"+IX TO DES
STORE "PRCE"+IX TO PRC
STORE "QUANT"+IX TO QUAN
STORE 13+COUNT TO LINENOW
@ LINENOW,0 SAY IX+":"
@ LINENOW,5 SAY &STK
@ LINENOW,20 SAY &DES
@ LINENOW,50 SAY STR(&PRC,8,2)
@ LINENOW,63 SAY STR(&QUAN,4,0)
@ LINENOW,70 SAY STR(&PRC*&QUAN,8,2)
STORE TOTAL+&PRC*&QUAN TO TOTAL
STORE COUNT+1 TO COUNT
ENDDO
@ 20,60 SAY "TAX:"
STORE TOTAL*TAX_RATE+.005 TO TAX
@ 20,70 SAY STR(TAX,8,2)
@ 21,60 SAY "TOTAL:"
@ 21,70 SAY STR(TOTAL+TAX,8,2)
ENDIF
STORE " " TO OPINPUT
@ 23,0 SAY ;
"<B>uyer <S>hip <P>ay <A>dd.Item <D>el.Item <C>ancel <E>nter <M>enu ";
GET OPINPUT
READ
STORE UPPER(OPINPUT) TO OPINPUT
DO CASE
CASE OPINPUT="D"
STORE 0 TO DELLINE
@ 23,0 SAY BLANK
@ 23,0 SAY "Order Line Number To Delete " GET DELLINE PICTURE "9"
READ
IF DELLINE>0.AND.DELLINE<=ENTRY_CT
* REPACK ENTRIES ON INVOICE
STORE DELLINE TO COUNT
DO WHILE COUNT<ENTRY_CT
STORE STR(COUNT,1,0) TO IX
STORE STR(COUNT+1,1,0) TO IX1
STORE "STKNUM"+IX TO STK
STORE "STKNUM"+IX1 TO TEMP
STORE &TEMP TO &STK
STORE "DESCR"+IX TO DES
STORE "DESCR"+IX1 TO TEMP
STORE &TEMP TO &DES
STORE "PRCE"+IX TO PRC
STORE "PRCE"+IX1 TO TEMP
STORE &TEMP TO &PRC
STORE "QUANT"+IX TO QUAN
STORE "QUANT"+IX1 TO TEMP
STORE &TEMP TO &QUAN
STORE COUNT+1 TO COUNT
ENDDO
STORE ENTRY_CT-1 TO ENTRY_CT
ENDIF
CASE OPINPUT="A"
IF ENTRY_CT<6
STORE ENTRY_CT+1 TO ENTRY_CT
STORE STR(ENTRY_CT,1,0) TO IX
STORE "STKNUM"+IX TO STK
STORE "DESCR"+IX TO DES
STORE "PRCE"+IX TO PRC
STORE "QUANT"+IX TO QUAN
STORE 13+ENTRY_CT TO LINENOW
@ LINENOW,4 GET &STK
READ
SELECT A
STORE &STK TO TEMP
FIND &TEMP
IF (EOF() .OR. BOF())
@ 23,0 SAY BLANK
STORE " " TO ACTION
@ 23,1 SAY ;
"** STOCK NUMBER NOT FOUND. 'E' KEY ALLOWS DATA ENTRY, ANY OTHER CANCELS " ;
GET ACTION
READ
IF ACTION<>'E'
STORE ENTRY_CT-1 TO ENTRY_CT
ELSE
@ 23,0 SAY BLANK
@ LINENOW,19 GET &DES
@ LINENOW,49 GET &PRC PICTURE "99999.99"
@ LINENOW,62 GET &QUAN PICTURE "9999"
READ
ENDIF
ELSE
* STOCK NUMBER WAS FOUND
@ LINENOW,20 SAY A->DESCRIPT
STORE A->DESCRIPT TO &DES
STORE A->PRICE TO &PRC
@ 23,0 SAY BLANK
@ 23,0 SAY "Current Item Price $"
?? A->PRICE, " Current Quantity on Hand :",A->ON_HAND
@ LINENOW,49 GET &PRC PICTURE "99999.99"
@ LINENOW,62 GET &QUAN PICTURE "9999"
READ
ENDIF
ENDIF
CASE OPINPUT="E"
* OUTPUT INVOICE AND SHIPPING LABEL THEN UPDATE INVENTORY RECORDS AND
* RECEIVABLES FILE IF APPROPRIATE
SET CONSOLE OFF
SET PRINT ON
SET DEVICE TO PRINT
* PRINT TWO COPIES, ONE FOR INVOICE, ONE FOR PACKING SLIP
STORE 1 TO COPY
STORE 1 TO LINENOW
DO WHILE COPY<=2
@ LINENOW,31 SAY "SMITH'S BIKEWORKS"
@ LINENOW+1,30 SAY "101 East Main Street"
@ LINENOW+2,31 SAY "Midtown, SC 22222"
@ LINENOW+4,25 SAY DTOC(DATE())+" INVOICE NUMBER: "+STR(INV_NUM,4,0)
@ LINENOW+6,10 SAY "Sold To"
@ LINENOW+6,50 SAY "Ship To"
@ LINENOW+8,0 SAY SOLD_NAME1
@ LINENOW+8,47 SAY SHIP_NAME1
@ LINENOW+9,0 SAY SOLD_NAME2
@ LINENOW+9,47 SAY SHIP_NAME2
@ LINENOW+10,0 SAY SOLD_ADRS
@ LINENOW+10,47 SAY SHIP_ADRS
@ LINENOW+11,0 SAY TRIM(SOLD_CITY)+","+SOLD_ST+" "+SOLD_ZIP
@ LINENOW+11,47 SAY TRIM(SHIP_CITY)+","+SHIP_ST+" "+SHIP_ZIP
DO CASE
CASE SALE_BASIS="C"
@ LINENOW+13,0 SAY "CASH SALE: "+NUMBER
CASE SALE_BASIS="M"
@ LINENOW+13,0 SAY "MASTER CHARGE: "+NUMBER
CASE SALE_BASIS="V"
@ LINENOW+13,0 SAY "VISA: "+NUMBER
CASE SALE_BASIS="B"
@ LINENOW+13,0 SAY "TERMS: PAYABLE ON RECEIPT OF INVOICE"
ENDCASE
@ LINENOW+15,5 SAY "STOCK NUMBER"
@ LINENOW+15,20 SAY "DESCRIPTION"
@ LINENOW+15,53 SAY "PRICE"
@ LINENOW+15,63 SAY " QTY"
@ LINENOW+15,70 SAY "SUBTOTAL"
STORE 1 TO COUNT
IF COPY = 1
STORE 0.00 TO TOTAL
ENDIF
STORE LINENOW+17 TO LINENOW
DO WHILE COUNT<=ENTRY_CT
STORE STR(COUNT,1,0) TO IX
STORE "STKNUM"+IX TO STK
STORE "DESCR"+IX TO DES
STORE "PRCE"+IX TO PRC
STORE "QUANT"+IX TO QUAN
@ LINENOW,0 SAY IX+":"
@ LINENOW,5 SAY &STK
@ LINENOW,20 SAY &DES
IF COPY=1
@ LINENOW,50 SAY STR(&PRC,8,2)
ENDIF
@ LINENOW,63 SAY STR(&QUAN,4,0)
IF COPY=1
@ LINENOW,70 SAY STR(&PRC*&QUAN,8,2)
STORE TOTAL+&PRC*&QUAN TO TOTAL
ENDIF
STORE LINENOW+1 TO LINENOW
STORE COUNT+1 TO COUNT
ENDDO
IF COPY=1
@ LINENOW+1,60 SAY "TAX:"
STORE TOTAL*TAX_RATE+.005 TO TAX
@ LINENOW+1,70 SAY STR(TAX,8,2)
@ LINENOW+2,60 SAY "TOTAL:"
@ LINENOW+2,70 SAY STR(TOTAL+TAX,8,2)
ENDIF
STORE 33 TO LINENOW
STORE COPY+1 TO COPY
ENDDO
EJECT
SET DEVICE TO SCREEN
SET PRINT OFF
SET CONSOLE ON
* UPDATE ALL INVENTORY RECORDS
SELECT A
STORE 1 TO COUNT
DO WHILE COUNT<=ENTRY_CT
STORE STR(COUNT,1,0) TO IX
STORE "STKNUM"+IX TO STK
STORE &STK TO TEMP
FIND &TEMP
IF .NOT. EOF()
STORE "QUANT"+IX TO QUAN
STORE &QUAN TO NUMTEMP
REPLACE ON_HAND WITH A->ON_HAND-NUMTEMP, ;
PER_SALES WITH A->PER_SALES+NUMTEMP, ;
CUM_SALES WITH A->CUM_SALES+NUMTEMP
ENDIF
STORE COUNT+1 TO COUNT
ENDDO
* IF CREDIT SALE, GENERATE RECEIVABLES RECORD
IF SALE_BASIS="B"
SELECT B
APPEND BLANK
REPLACE ACCT_NUM WITH ACCOUNT, DATE_RECD WITH DATE(), ;
INVOICE_ID WITH STR(INV_NUM,5,0), CUSTOMER WITH SOLD_NAME1, ;
DATE_DUE WITH DATE(), AMOUNT WITH TOTAL, LAST_UPDT WITH DATE()
ENDIF
* UPDATE TO NEXT SEQUENTIAL INVOICE NUMBER
STORE INV_NUM+1 TO INV_NUM
ENDCASE
ENDDO
CLEAR
RETURN